Organizations seek to communicate with information consumers in a wide variety of ways, e.g., to provide general-interest or organization-specific alerts such as, for example, weather reports, emergency road closures, breaking news stories, suspected account fraud, etc. Similarly, organizations might also try to present to potential customers special offers on goods and/or services, etc.
Messages may be delivered through a number of different channels, ranging from traditional “snail-mail” or posted mail, to telephone calls, to the seemingly more ubiquitous email. Other messages are delivered through standards-based services such as SMS or MMS services, while still other messages are delivered through proprietary services such as the Apple Push Notification service (which is a service Apple uses to push notifications to Apple iOS devices) or the like. Some organizations reach out to customers by providing information through, and/or soliciting information via, websites, etc.
As people stay more connected through the widespread adoption of smart devices and the like, it seems that both the number of messages and the ways in which such messages can be delivered has increased.
Another interesting trend relates to messages being delivered over electronically-mediated channels and including real-time and/or time-sensitive content. Such content might be based on a variety of factors such as, for example, location and/or profile matching for real-time offers; notifications of possible fraudulent use of a credit card; offers for extended return/warranty service for recently purchased items; requests to complete surveys; etc.
Messages may be delivered at a time that is either explicitly requested by the originating system (e.g., right now, a specific time (e.g., 30 minutes before a football game), etc.), or seemingly arbitrarily (e.g., at the end of an analytics batch cycle). Unfortunately, however, these delivery timeframes tend to have no bearing on the collective impact to the end-customer. That is, given the potentially “unconnected” nature of the sources of all these messages, one organization might not know what another organization is doing, how many or what messages a customer is receiving, whether the customer is even in a position to receive messages, etc. As a result of this unconnected nature, an individual organization that sends many messages, or that has the poor fortune of wanting to send only one message to an otherwise inundated person, might negatively impact the customer experience with that particular organization. Again, this possible negative impact might have nothing to do with the direct actions of that particular organization. But such negative impacts might nonetheless “be real” and lead to unhappy customers, lower customer engagement with otherwise important messages and/or that organization as a whole, increasing churn (which refers to the inefficient and inconvenient process of switching from provider-to-provider, oftentimes in the telecommunications context), etc.
It therefore will be appreciated that it would be desirable to solve one or more of the above-described and/or other problems. For instance, it will be appreciated that it would be desirable to coordinate message delivery to provide messages to users in a more coherent manner, e.g., that takes into account factors such as, for example, when and how best to present messages to users—even though such messages potentially may come from many different originators across many different channels, and be of many different types.
Certain example embodiments collate messages from identified sources and channels and use an event-based matching engine to continuously manage the dynamic list of messages. In this way, certain example embodiments manage how and when messages are delivered to customers, e.g., so that only the most appropriate messages are passed on to the end-customers in real-time via the most appropriate channels. This technique also can be used to reduce the unsolicited contact points that an organization has with end-customers, thereby potentially improving the customer experience, increasing customer trust and loyalty, etc.
The ability to provide services on a real-time basis and in connection with real-time delivery is advantage for a number of reasons. For instance, messages themselves tend to be time-sensitive. As one example, location-based offers generally will use the location of the customer (who will normally be moving) to determine whether to send an offer. Thus, it would be desirable to make offers available to potential customers while they are at or near the correct locations, or not at all. Consider, for example, a location-based offer for a book in a series of books being read by a consumer, with that offer being redeemable at a specific store. If that customer receives the offer as the customer is passing the store, it is both relevant and has a good chance of converting an offer to a sale of the book. By contrast, if the message is received a few minutes later, the customer may have passed the store and, thus, the message is more likely to be perceived as unwanted spam, thereby creating a negatively impression of the bookstore.
Even for when messages themselves are not time sensitive (e.g., an offer to take up a loan), they oftentimes are not targeted towards a specific context (e.g., when a high value purchase is made). Thus, although a customer may eligible to be receive a loan offer at virtually any time after a qualification decision has been made, matching the sending of the message to a time when an expensive item is purchased could add value, e.g., in term of presenting the offer at a time that is appropriate and again likely to lead to the offering being seized. Receiving the message sometime before the purchase is made (and when a subsequent large purchase might not be made) or long after the purchase is made (and when another subsequent large purchase might not be made) likely will be out of context and could create a negative impression.
It thus can be seen that the message processing techniques of certain example embodiments that take into account through real-time processing time-sensitivity issues regarding the messages being sent can be advantageous in a number of different contexts. Similarly, it can be seen that certain example embodiments advantageously provide controls for customer engagement with one or more organizations, e.g., through highly-parallel and asynchronous processing of interactions between many disparate systems.
An aspect of certain example embodiments relates to the real-time and dynamic cross-correlation and orchestration of a body of messages, and the distribution of such messages across the most appropriate channels. An event-based system may be used to implement a matching engine in this regard.
Another aspect of certain example embodiments relates to a dynamic matching engine that continually reassesses messages against themselves and ever changing contexts. Certain example embodiments provide for the programmatic selection of an appropriate channel for message delivery, e.g., in connection with (for example, after) the matching engine determining that a message should be sent.
Another aspect of certain example embodiments relates to comparing normalized messages, filtering out unwanted messages, filtering in messages likely to be of interest, handling multi-channel contexts, and/or the like.
Certain example embodiments involve, among other things, Customer Relationship Management (CRM) related technologies. <ore particularly, certain example embodiments relate to, among other things, a dynamic and generic solution to taking multiple messages and activity feeds from almost any source in real-time, processing them, and delivering them to the customers again using almost any of the available delivery mechanisms that the customers use in order to enhance their experiences, e.g., by presenting those customers with relevant information at a time and in a manner likely to be of the most interest. That is, the message delivery may be adjusted to an optimized or improved time, message prioritization, and/or delivery channel, optionally based on the customer's requirements.
In certain example embodiments, there is provided a computer-mediated electronic message distribution method. Electronic messages are received from a plurality of different source systems, with each said received message having an associated message type. Metadata is dynamically and programmatically developed for each said received message based on an extensible set of scoring scenarios, with the metadata including at least one metric that is comparable across messages of different message types in assessing relative priorities of such messages, and with the extensible set of scoring scenarios being stored to a first non-transitory computer readable storage medium and being computer-executable. A determination is made as to where in a queue of pending messages each said received message is to be inserted, based on the metadata associated with the respective messages. Responsive to the determining, each said received message is inserted into the queue of pending messages. A complex event processing (CEP) query is executed on the queue of pending messages to dynamically identify a pending message therein that is to be delivered, in connection with at least one processor. The identified pending message that is to be delivered is subjected to a plurality of pre-programmed distribution scenarios to identify which of a plurality of possible communication channels that identified pending message is to be sent, with the pre-programmed distribution scenarios being stored to a second non-transitory computer readable storage medium and being computer-executable. The identified pending message is forwarded on to the identified communication channel(s) for sending.
In certain example embodiments, a message manager computer system is provided. The system includes processing resources including at least one processor, and a plurality of computer-mediated interfaces to respective electronic message source systems over which electronic messages are receivable. The processing resources are configured to cooperate with the plurality of interfaces and control the message manager computer system to at least: receive electronic messages from ones of the electronic message source systems, each said received message having an associated message type; dynamically and programmatically develop metadata for each said received message based on an extensible set of scoring scenarios, the metadata including at least one metric that is comparable across messages of different message types in assessing relative priorities of such messages, the extensible set of scoring scenarios being stored to a first non-transitory computer readable storage medium of the message manager computer system and being computer-executable; determine where in a queue of pending messages each said received message is to be inserted, based on the metadata associated with the respective messages; responsive to the determining, insert each said received message into the queue of pending messages; dynamically identify a pending message in the queue of pending messages that is to be delivered; subject the identified pending message that is to be delivered to a plurality of pre-programmed distribution scenarios to identify which of a plurality of possible communication channels that identified pending message is to be sent, the pre-programmed distribution scenarios being stored to a second non-transitory computer readable storage medium of the message manager computer system and being computer-executable; and forward on the identified pending message to the identified communication channel(s) for sending.
Non-transitory computer readable storage mediums tangibly storing instructions for performing the above-summarized and/or other approaches also are provided by certain example embodiments, as well as corresponding computer programs.
These features, aspects, advantages, and example embodiments may be used separately and/or applied in various combinations to achieve yet further embodiments of this invention.